home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Systemmonitors / MemSnapII / source / menu.c < prev    next >
C/C++ Source or Header  |  1996-09-26  |  998b  |  45 lines

  1. /*
  2. *    menu.c
  3. *
  4. *    NewMenus for MemSnap
  5. *
  6. *    MWS, 2/93.
  7. */
  8.  
  9. #include <exec/types.h>
  10. #include <intuition/intuition.h>
  11. #include <libraries/gadtools.h>
  12. #include <proto/gadtools.h>
  13. #include "menu.h"
  14.  
  15. static struct NewMenu gt_items[] = {
  16.     { NM_TITLE, "MemSnapII",    NULL, 0, 0, NULL },
  17.     { NM_ITEM,  "Small window",     ".", 0, 0, NULL },
  18.     { NM_ITEM,  "Large window",    "/",0, 0, NULL },
  19.     { NM_ITEM,  "About...",        "A",0, 0, NULL },
  20.     { NM_ITEM,  "Quit",        "Q", 0, 0, NULL },
  21.  
  22.     { NM_END }
  23. };
  24.  
  25. static APTR vi;            /* visual info for gadtools */
  26. static struct Menu *menu;
  27.  
  28. void FreeMemSnapMenu()        /* free all menustrips and related data */
  29. {
  30.     if (menu) FreeMenus(menu);
  31.     if (vi) FreeVisualInfo(vi);
  32. }
  33.  
  34. struct Menu *
  35. AllocMemSnapMenu(struct Window *window)    /* allocate menustrips required by program */
  36. {
  37.     if ((menu = CreateMenusA(gt_items, NULL)) &&
  38.         (vi = GetVisualInfoA(window->WScreen, NULL)) &&
  39.          (LayoutMenusA(menu, vi, NULL)))
  40.         return menu;
  41.  
  42.     FreeMemSnapMenu();    /* something failed... */
  43.     return NULL;
  44. }
  45.